From d4619ab51e267a7b7587369b6593062349ecde9c Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Thu, 19 Jul 2012 15:46:02 +0100 Subject: [PATCH] vt-d: fix wrong addr in IOTLB invalidation descriptor According to vt-d specs, the addr in IOTLB invalidation descriptor should be 4K page aligned. Signed-off-by: Yang Zhang Committed-by: Keir Fraser --- xen/drivers/passthrough/vtd/qinval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/drivers/passthrough/vtd/qinval.c b/xen/drivers/passthrough/vtd/qinval.c index a1ac3ee7ba..6a410d8e8f 100644 --- a/xen/drivers/passthrough/vtd/qinval.c +++ b/xen/drivers/passthrough/vtd/qinval.c @@ -140,7 +140,7 @@ static int gen_iotlb_inv_dsc(struct iommu *iommu, int index, qinval_entry->q.iotlb_inv_dsc.hi.am = am; qinval_entry->q.iotlb_inv_dsc.hi.ih = ih; qinval_entry->q.iotlb_inv_dsc.hi.res_1 = 0; - qinval_entry->q.iotlb_inv_dsc.hi.addr = addr; + qinval_entry->q.iotlb_inv_dsc.hi.addr = addr >> PAGE_SHIFT_4K; unmap_vtd_domain_page(qinval_entries); spin_unlock_irqrestore(&qi_ctrl->qinval_lock, flags); -- 2.30.2